package com.cskaoyan.javase.object._0introduction;
/**
 * Object类概述
 * Object类，虽然我们没有详细了解，但我们知道了：
 * Object类是所有类继承层次的祖先类，Java中所有类（包括数组）都直接或者间接的继承自该类，都实现了该类的方法。
 *
 * 自定义类时，我们并不需要特别的标注extends Object，这是一个隐式的继承。如果一个类没有明确的指出它的父类，Object类就默认是这个类的父类，extends Object则已经隐含了，不需要写出来。
 *
 * Object是没有成员变量定义的，并且由于子类对象的隐式初始化
 * Object类有且仅有一个默认提供的无参构造方法。
 * 所以我们学习Object类，主要关注它的成员方法。
 *
 * Object的成员方法中，提供给外界访问权限的有：
 *      1.public final Class getClass()
 *          了解该方法的作用即可
 *          该方法实际作用意义不大
 *      2.public String toString()
 *          非常常用的一个方法,但是很简单
 *      (重点)3.public boolean equals(Object obj)
 *        public int hashCode()
 *        以上两个方法关系非常紧密,一起学习
 *        它们是Object类当中最有内涵,最重要的两个方法
 *        实际开发中非常常用
 *      4.protected void finalize()
 *          它已经没有实际意义了,它是一个被淘汰的方法
 *          它没有任何作用
 *          在Java9及其以后的版本中
 *          已经使用注解"@Deprecated"标记了它
 *          表示它是一个过时的,已经被放弃使用,不再建议使用的方法
 *      注: 以后我们会见到一些类,一些方法被注解"@Deprecated"标记
 *          表示它们已经过时,已经被放弃使用了
 *          实际开发中,禁止使用它们
 *
 *      5.protected Object clone()
 *          克隆,拷贝对象
 *          这个方法很重要,但不常用
 *          因为它是Java当中为数不多的创建对象的方式之一
 *          它和new创建对象是平行的创建对象的方式
 *
 * @since 09:54
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        test();
    }

    private static void test() {
        test2();
    }

    @Deprecated
    private static void test2() {

    }
}
